import { singleton } from "tsyringe"

@singleton()
export class CoreRuntime {
    origin: any = runtime;
    /*****
    function setTopLevelScope() {
    void setTopLevelScope(com.stardust.autojs.rhino.TopLevelScope)
    }
    
    *****/
    setTopLevelScope() {
        return this.origin.setTopLevelScope()
    }
    /*****
    function getClass() {
    java.lang.Class getClass()
    }
    
    *****/
    getClass() {
        return this.origin.getClass()
    }
    /*****
    com.stardust.autojs.AutoJs$AccessibilityBridgeImpl@5cd147f
    *****/
    get accessibilityBridge() {
        return this.origin.accessibilityBridge
    }
    /*****
    function onExit() {
    void onExit()
    }
    
    *****/
    onExit() {
        return this.origin.onExit()
    }
    /*****
    com.stardust.autojs.this.origin.api.Plugins@9abe495
    *****/
    get plugins() {
        return this.origin.plugins
    }
    /*****
    function ensureAccessibilityServiceEnabled() {
    void ensureAccessibilityServiceEnabled()
    }
    
    *****/
    ensureAccessibilityServiceEnabled() {
        return this.origin.ensureAccessibilityServiceEnabled()
    }
    /*****
    function requestPermissions() {
    void requestPermissions(java.lang.String[])
    }
    
    *****/
    requestPermissions() {
        return this.origin.requestPermissions()
    }
    /*****
    [object global]
    *****/
    get topLevelScope() {
        return this.origin.topLevelScope
    }
    /*****
    com.stardust.autojs.this.origin.api.Dialogs@328799b
    *****/
    get dialogs() {
        return this.origin.dialogs
    }
    /*****
    [object UI]
    *****/
    get ui() {
        return this.origin.ui
    }
    /*****
    com.stardust.autojs.this.origin.api.Engines@62b3138
    *****/
    get engines() {
        return this.origin.engines
    }
    /*****
    undefined
    *****/
    get property() {
        return this.origin.property
    }
    /*****
    com.stardust.autojs.core.looper.Loopers@c9ef676
    *****/
    get loopers() {
        return this.origin.loopers
    }
    /*****
    function setClip() {
    void setClip(java.lang.String)
    }
    
    *****/
    setClip() {
        return this.origin.setClip()
    }
    /*****
    com.stardust.autojs.this.origin.api.Events@40b1477
    *****/
    get events() {
        return this.origin.events
    }
    /*****
    function getImages() {
    java.lang.Object getImages()
    }
    
    *****/
    getImages() {
        return this.origin.getImages()
    }
    /*****
    com.stardust.autojs.core.activity.ActivityInfoProvider@805114d
    *****/
    get info() {
        return this.origin.info
    }
    /*****
    com.stardust.autojs.this.origin.api.AppUtils@3428598
    *****/
    get app() {
        return this.origin.app
    }
    /*****
    function init() {
    void init()
    }
    
    *****/
    init() {
        return this.origin.init()
    }
    /*****
    com.stardust.autojs.this.origin.api.Timers@3fc0402
    *****/
    get timers() {
        return this.origin.timers
    }
    /*****
    com.stardust.autojs.this.origin.api.Images@7128113
    *****/
    get images() {
        return this.origin.images
    }
    /*****
    com.stardust.autojs.this.origin.api.GoogleMLKit@de6ef50
    *****/
    get gmlkit() {
        return this.origin.gmlkit
    }
    /*****
    function getRootShell() {
    com.stardust.autojs.this.origin.api.AbstractShell getRootShell()
    }
    
    *****/
    getRootShell() {
        return this.origin.getRootShell()
    }
    /*****
    com.stardust.autojs.this.origin.api.Floaty@1e7549
    *****/
    get floaty() {
        return this.origin.floaty
    }
    /*****
    com.stardust.autojs.this.origin.ScriptBridges@42a5e4e
    *****/
    get bridges() {
        return this.origin.bridges
    }
    /*****
    Handler (com.stardust.util.UiHandler) {f53b07c}
    *****/
    get uiHandler() {
        return this.origin.uiHandler
    }
    /*****
    function exit() {
    void exit(java.lang.Throwable)
    void exit()
    }
    
    *****/
    exit() {
        return this.origin.exit()
    }
    /*****
    function toast() {
    void toast(java.lang.String)
    }
    
    *****/
    toast() {
        return this.origin.toast()
    }
    /*****
    function getScreenMetrics() {
    com.stardust.util.ScreenMetrics getScreenMetrics()
    }
    
    *****/
    getScreenMetrics() {
        return this.origin.getScreenMetrics()
    }
    /*****
    function stop() {
    void stop()
    }
    
    *****/
    stop() {
        return this.origin.stop()
    }
    /*****
    function shell() {
    com.stardust.autojs.this.origin.api.AbstractShell$Result shell(java.lang.String,int)
    }
    
    *****/
    shell() {
        return this.origin.shell()
    }
    /*****
    com.stardust.autojs.core.accessibility.SimpleActionAutomator@2501d05
    *****/
    get automator() {
        return this.origin.automator
    }
    /*****
    function getClip() {
    java.lang.String getClip()
    }
    
    *****/
    getClip() {
        return this.origin.getClip()
    }
    /*****
    com.stardust.autojs.this.origin.api.Files@bd2115a
    *****/
    get files() {
        return this.origin.files
    }
    /*****
    function removeProperty() {
    java.lang.Object removeProperty(java.lang.String)
    }
    
    *****/
    removeProperty() {
        return this.origin.removeProperty()
    }
    /*****
    Device{width=1440, height=3200, buildId='TP1A.220624.014', buildDisplay='TP1A.220624.014', product='rembrandt', board='rembrandt', brand='Redmi', device='rembrandt', model='22122RK93C', bootloader='unknown', hardware='mt6895', fingerprint='Redmi/rembrandt/rembrandt:13/TP1A.220624.014/V14.0.2.0.TMMCNXM:user/release-keys', sdkInt=33, incremental='V14.0.2.0.TMMCNXM', release='13', baseOS='', securityPatch='2023-06-01', serial='unknown'}
    *****/
    get device() {
        return this.origin.device
    }
    /*****
    function loadDex() {
    void loadDex(java.lang.String)
    }
    
    *****/
    loadDex(path: string) {
        return this.origin.loadDex(path)
    }
    /*****
    function wait() {
    void wait(long,int)
    void wait()
    void wait(long)
    }
    
    *****/
    wait(i?: number) {
        return this.origin.wait(i)
    }
    /*****
    function loadJar() {
    void loadJar(java.lang.String)
    }
    
    *****/
    loadJar(path: string) {
        return this.origin.loadJar(path)
    }
    /*****
    function notifyAll() {
    void notifyAll()
    }
    
    *****/
    notifyAll() {
        return this.origin.notifyAll()
    }
    /*****
    com.stardust.autojs.core.util.Shell@f56ff8b
    *****/
    get rootShell() {
        return this.origin.rootShell
    }
    /*****
    com.stardust.autojs.this.origin.api.Media@a695868
    *****/
    get media() {
        return this.origin.media
    }
    /*****
    com.stardust.autojs.this.origin.api.SevenZip@3a8481
    *****/
    get zips() {
        return this.origin.zips
    }
    /*****
    function putProperty() {
    java.lang.Object putProperty(java.lang.String,java.lang.Object)
    }
    
    *****/
    putProperty() {
        return this.origin.putProperty()
    }
    /*****
    function notify() {
    void notify()
    }
    
    *****/
    notify() {
        return this.origin.notify()
    }
    /*****
    com.stardust.autojs.core.image.Colors@a0fe926
    *****/
    get colors() {
        return this.origin.colors
    }
    /*****
    function sleep() {
    void sleep(long)
    }
    
    *****/
    sleep() {
        return this.origin.sleep()
    }
    /*****
    function hashCode() {
    int hashCode()
    }
    
    *****/
    hashCode() {
        return this.origin.hashCode()
    }
    /*****
    function selector() {
    com.stardust.autojs.core.accessibility.UiSelector selector()
    }
    
    *****/
    selector() {
        return this.origin.selector()
    }
    /*****
    class com.stardust.autojs.this.origin.ScriptRuntime
    *****/
    get class() {
        return this.origin.class
    }
    /*****
    com.stardust.autojs.core.console.ConsoleImpl@b340967
    *****/
    get console() {
        return this.origin.console
    }
    /*****
    false
    *****/
    get stopped(): boolean {
        return this.origin.stopped
    }
    /*****
    function getProperty() {
    java.lang.Object getProperty(java.lang.String)
    }
    
    *****/
    getProperty() {
        return this.origin.getProperty()
    }
    /*****
    function getTopLevelScope() {
    com.stardust.autojs.rhino.TopLevelScope getTopLevelScope()
    }
    
    *****/
    getTopLevelScope() {
        return this.origin.getTopLevelScope()
    }
    /*****
    function isStopped() {
    boolean isStopped()
    }
    
    *****/
    isStopped() {
        return this.origin.isStopped()
    }
    /*****
    function getAccessibilityBridge() {
    com.stardust.autojs.core.accessibility.AccessibilityBridge getAccessibilityBridge()
    }
    
    *****/
    getAccessibilityBridge() {
        return this.origin.getAccessibilityBridge()
    }
    /*****
    com.stardust.util.ScreenMetrics@b09e7bd
    *****/
    get screenMetrics() {
        return this.origin.screenMetrics
    }
    /*****
    com.stardust.autojs.this.origin.api.Threads@10171b2
    *****/
    get threads() {
        return this.origin.threads
    }
    /*****
    function getUiHandler() {
    com.stardust.util.UiHandler getUiHandler()
    }
    
    *****/
    getUiHandler() {
        return this.origin.getUiHandler()
    }
    /*****
    com.stardust.autojs.this.origin.api.Sensors@fedd503
    *****/
    get sensors() {
        return this.origin.sensors
    }
    /*****
    function createContinuation() {
    com.stardust.autojs.rhino.continuation.Continuation createContinuation()
    com.stardust.autojs.rhino.continuation.Continuation createContinuation(org.mozilla.javascript.Scriptable)
    }
    
    *****/
    createContinuation() {
        return this.origin.createContinuation()
    }
    /*****
    function equals() {
    boolean equals(java.lang.Object)
    }
    
    *****/
    equals() {
        return this.origin.equals()
    }
    /*****
    function toString() {
    java.lang.String toString()
    }
    
    *****/
    toString() {
        return this.origin.toString()
    }
    /*****
    function setScreenMetrics() {
    void setScreenMetrics(int,int)
    }
    
    *****/
    setScreenMetrics() {
        return this.origin.setScreenMetrics()
    }
    /*****
    
    *****/
    get clip() {
        return this.origin.clip
    }
}